package CreateFactroy.Singleton;

// 单例类
 class Singleton {
    // 私有静态变量用于存储唯一实例
    private static Singleton instance;

    // 私有构造函数，防止外部实例化
    private Singleton() {
    }

    // 静态方法用于获取唯一实例
    public static Singleton getInstance() {
        // 懒汉式单例模式，在第一次调用时才创建实例
        if (instance == null) {
            instance = new Singleton();
        }
        return instance;
    }

    // 其他方法
    public void doSomething() {
        System.out.println("Singleton instance is doing something.");
    }
}

// 客户端
public class Client {
    public static void main(String[] args) {
        // 获取单例实例
        Singleton singleton1 = Singleton.getInstance();
        Singleton singleton2 = Singleton.getInstance();

        // 验证是否为同一个实例
        System.out.println(singleton1 == singleton2); // 输出 true

        // 调用单例实例的方法
        singleton1.doSomething();
        singleton2.doSomething();
    }
}
